﻿using System;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x02000286 RID: 646
	public class TCallSqlNode : TParseTreeNode
	{
		// Token: 0x170003C5 RID: 965
		// (get) Token: 0x060014C1 RID: 5313 RVA: 0x003252F2 File Offset: 0x003234F2
		public virtual TExecParameterList ParameterList
		{
			get
			{
				return this._parameterList;
			}
		}

		// Token: 0x170003C6 RID: 966
		// (get) Token: 0x060014C2 RID: 5314 RVA: 0x003252FA File Offset: 0x003234FA
		public virtual TExpressionList Args
		{
			get
			{
				return this._args;
			}
		}

		// Token: 0x170003C7 RID: 967
		// (get) Token: 0x060014C3 RID: 5315 RVA: 0x00325302 File Offset: 0x00323502
		public virtual TObjectName HostVariable
		{
			get
			{
				return this._hostVariable;
			}
		}

		// Token: 0x170003C8 RID: 968
		// (get) Token: 0x060014C4 RID: 5316 RVA: 0x0032530A File Offset: 0x0032350A
		public virtual TObjectName IndicatorVariable
		{
			get
			{
				return this._indicatorVariable;
			}
		}

		// Token: 0x170003C9 RID: 969
		// (get) Token: 0x060014C5 RID: 5317 RVA: 0x00325312 File Offset: 0x00323512
		public virtual TObjectName RoutineName
		{
			get
			{
				return this._routineName;
			}
		}

		// Token: 0x060014C6 RID: 5318 RVA: 0x0032531C File Offset: 0x0032351C
		public override void init(object arg1)
		{
			if (arg1 is TExpression)
			{
				this._routineExpr = (TExpression)arg1;
				if (this._routineExpr.ExpressionType == EExpressionType.function_t)
				{
					this._routineName = this._routineExpr.FunctionCall.FunctionName;
					this._args = this._routineExpr.FunctionCall.Args;
					return;
				}
			}
			else if (arg1 is TObjectName)
			{
				this._routineName = (TObjectName)arg1;
			}
		}

		// Token: 0x170003CA RID: 970
		// (get) Token: 0x060014C7 RID: 5319 RVA: 0x0032538D File Offset: 0x0032358D
		public virtual TExpression RoutineExpr
		{
			get
			{
				return this._routineExpr;
			}
		}

		// Token: 0x060014C8 RID: 5320 RVA: 0x00325398 File Offset: 0x00323598
		public override void init(object arg1, object arg2)
		{
			this.init(arg1);
			if (arg2 is TObjectName)
			{
				this._hostVariable = (TObjectName)arg2;
				return;
			}
			if (arg2 is TExpressionList)
			{
				this._args = (TExpressionList)arg2;
				return;
			}
			if (arg2 is TExecParameterList)
			{
				this._parameterList = (TExecParameterList)arg2;
			}
		}

		// Token: 0x060014C9 RID: 5321 RVA: 0x003253EA File Offset: 0x003235EA
		public override void init(object arg1, object arg2, object arg3)
		{
			this.init(arg1, arg2);
			this._indicatorVariable = (TObjectName)arg3;
		}

		// Token: 0x040016F6 RID: 5878
		private TExpression _routineExpr;

		// Token: 0x040016F7 RID: 5879
		private TObjectName _hostVariable;

		// Token: 0x040016F8 RID: 5880
		private TObjectName _indicatorVariable;

		// Token: 0x040016F9 RID: 5881
		private TExpressionList _args;

		// Token: 0x040016FA RID: 5882
		private TObjectName _routineName;

		// Token: 0x040016FB RID: 5883
		private TExecParameterList _parameterList;
	}
}
